home *** CD-ROM | disk | FTP | other *** search
Wrap
# # app.make # APPICONFLAGS = -sectcreate __ICON __header $(NAME).iconheader \ -segprot __ICON r r $(ICONSECTIONS) \ $(OTHER_ICONSECTIONS) ICONHEADER = $(NAME).iconheader PRODUCT_ROOT = $(SYMROOT)/$(NAME).app APP_MAKEFILE_DIR = /NextDeveloper/Makefiles/app include $(APP_MAKEFILE_DIR)/common.make all:: app app:: @($(MKDIRS) $(PRODUCT_ROOT) ; \ $(process_target_archs)_obj ; \ $(set_bundle_ext) ; \ if [ "$(ENGLISH)" = "YES" -o "$(JAPANESE)" != "YES" ] ; then \ language_cflags="" ; \ libs="$(LIBS)" ; \ other_libs="$(OTHER_LIBS)" ; \ else \ language_cflags="-DKANJI" ; \ libs="$(LIBS:lNeXT_s=lNeXTJ_s)" ; \ other_libs="$(OTHER_LIBS:lNeXT_s=lNeXTJ_s)" ; \ fi ; \ $(MAKE) project \ "PRODUCT_ROOT = $(PRODUCT_ROOT)" \ "TOP_PRODUCT_ROOT = $(PRODUCT_ROOT)" \ "PRODUCT = $(PRODUCT_ROOT)/$(NAME)" \ "OFILE_DIR = $(OBJROOT)/$$obj_dir" \ "PROJ_CFLAGS = $(NORMAL_CFLAGS) $$language_cflags" \ "LIBS = $$libs" \ "OTHER_LIBS = $$other_libs" \ "APP_MAKEFILE_DIR = $(APP_MAKEFILE_DIR)" \ "BUNDLE_EXTENSION = $$bundle_ext" \ "DEVROOT = $(DEVROOT)" \ "RC_CFLAGS = $$arch_cflags" \ "RC_ARCHS = $$archs" \ "SRCROOT = $(SRCROOT)" \ "DSTROOT = $(DSTROOT)" \ "OBJROOT = $(OBJROOT)" \ "SYMROOT = $(SYMROOT)/sym" \ "SYM_DIR = $(SYMROOT)/sym" ) debug:: @($(MKDIRS) $(NAME).debug ; \ $(process_target_archs)_debug_obj ; \ $(set_bundle_ext) ; \ if [ "$(ENGLISH)" = "YES" -o "$(JAPANESE)" != "YES" ] ; then \ language_cflags="" ; \ libs="$(DEBUG_LIBS)" ; \ other_libs="$(OTHER_DEBUG_LIBS)" ; \ other_japanese_libs="" ; \ else \ language_cflags="-DKANJI" ; \ libs="$(DEBUG_LIBS:lNeXT_s=lNeXTJ_s)" ; \ other_libs="$(OTHER_DEBUG_LIBS:lNeXT_s=lNeXTJ_s)" ; \ other_japanese_libs="$(OTHER_JAPANESE_DEBUG_LIBS)" ; \ fi ; \ $(MAKE) project \ "PRODUCT_ROOT = $(PRODUCT_ROOT:.app=.debug)" \ "TOP_PRODUCT_ROOT = $(PRODUCT_ROOT:.app=.debug)" \ "PRODUCT = $(PRODUCT_ROOT:.app=.debug)/$(NAME)" \ "OFILE_DIR = $(OBJROOT)/$$obj_dir" \ "PROJ_CFLAGS = $(DEBUG_CFLAGS) $$language_cflags" \ "LIBS = $$libs" "OTHER_LIBS = $$other_libs" \ "OTHER_JAPANESE_LIBS = $$other_japanese_libs" \ "APP_MAKEFILE_DIR = $(APP_MAKEFILE_DIR)" \ "BUNDLE_EXTENSION = $$bundle_ext" \ "DEVROOT = $(DEVROOT)" \ "RC_CFLAGS = $$arch_cflags" \ "RC_ARCHS = $$archs" \ "SRCROOT = $(SRCROOT)" \ "DSTROOT = $(DSTROOT)" \ "OBJROOT = $(OBJROOT)" \ "SYMROOT = $(SYMROOT)/sym" \ "SYM_DIR = $(SYMROOT)/sym" ) profile:: @($(MKDIRS) $(NAME).profile ; \ $(process_target_archs)_profile_obj ; \ $(set_bundle_ext) ; \ if [ "$(ENGLISH)" = "YES" -o "$(JAPANESE)" != "YES" ] ; then \ language_cflags="" ; \ libs="$(PROF_LIBS)" ; \ other_libs="$(OTHER_PROF_LIBS)" ; \ other_japanese_libs="" ; \ else \ language_cflags="-DKANJI" ; \ libs="$(PROF_LIBS:lNeXT_s=lNeXTJ_s)" ; \ other_libs="$(OTHER_PROF_LIBS:lNeXT_s=lNeXTJ_s)" ; \ other_japanese_libs="$(OTHER_JAPANESE_PROF_LIBS)" ; \ fi ; \ $(MAKE) project \ "PRODUCT_ROOT = $(PRODUCT_ROOT:.app=.profile)" \ "TOP_PRODUCT_ROOT = $(PRODUCT_ROOT:.app=.profile)" \ "PRODUCT = $(PRODUCT_ROOT:.app=.profile)/$(NAME)" \ "OFILE_DIR = $(OBJROOT)/$$obj_dir" \ "PROJ_CFLAGS = $(PROFILE_CFLAGS) $$language_cflags" \ "LIBS = $$libs" "OTHER_LIBS = $$other_libs" \ "OTHER_JAPANESE_LIBS = $$other_japanese_libs" \ "APP_MAKEFILE_DIR = $(APP_MAKEFILE_DIR)" \ "BUNDLE_EXTENSION = $$bundle_ext" \ "DEVROOT = $(DEVROOT)" \ "RC_CFLAGS = $$arch_cflags" \ "RC_ARCHS = $$archs" \ "SRCROOT = $(SRCROOT)" \ "DSTROOT = $(DSTROOT)" \ "OBJROOT = $(OBJROOT)" \ "SYMROOT = $(SYMROOT)/sym" \ "SYM_DIR = $(SYMROOT)/sym" ) depend:: Makefile.dependencies $(SUBPROJECTS:.subproj=.depend) $(BUNDLES:.bproj=.depend) $(TOOLS:.tproj=.depend) # Note: The order of the following project dependencies is very important. subcomponents must be after $(PROJECT_OFILES) in case a subcomponent relies upon something (e.g. generated .h file) at the top level, but all subprojects must be built (hopefully by one invocation of make in that subdirectory) before the $(PRODUCT) can be linked. project:: $(INITIAL_TARGETS) toplevel_subcomponents resources $(PRODUCT) toplevel_subcomponents:: subprojs bundles tools -@($(RM) -f $(TOP_PRODUCT_ROOT)/$(CHANGES_FILE) ; \ $(ECHO) "$(OFILE_DIR)" > $(TOP_PRODUCT_ROOT)/$(CHANGES_FILE)) $(PRODUCT): $(PRODUCT_DEPENDS) $(OTHER_PRODUCT_DEPENDS) @(adaptors="" ; \ for adaptor in $(OTHERRELOCATABLES) none ; do \ if [ $$adaptor = "none" ] ; then break; fi ; \ for path in $(ADAPTOR_SEARCH_PATH) none ; do \ if [ $$path = "none" ] ; then break; fi ;\ if [ -r $$path/$$adaptor ] ; then \ adaptors="$$adaptors $$path/$$adaptor" ; \ break ; \ fi ; \ done ; \ done ; \ if [ "$(ENGLISH)" = "YES" -o "$(JAPANESE)" != "YES" ] ; then \ other_japanese_libs=""; \ else \ other_japanese_libs="$(OTHER_JAPANESE_LIBS)" ; \ fi ; \ cmd="$(CC) $(ALL_CFLAGS) $(OBJCFLAG) $(ALL_LDFLAGS) \ $(APPICONFLAGS) -o $(PRODUCT) $(OFILES) $(OTHER_OFILES) \ $$adaptors $$other_japanese_libs $(OTHER_LIBS) $(LIBS)" ; \ echo $$cmd ; \ $$cmd ) $(DSTROOT)$(INSTALLDIR): $(MKDIRS) $(DSTROOT)$(INSTALLDIR) before_install:: $(DSTROOT)$(INSTALLDIR) $(RM) -rf $(DSTROOT)$(INSTALLDIR)/$(NAME).app after_install:: install:: app before_install installhdrs $(OTHER_INSTALL_DEPENDS) (cd $(SYMROOT); $(TAR) chf - $(NAME).app) | (cd $(DSTROOT)$(INSTALLDIR); $(TAR) xf -) @somebundles=no; \ for i in $(BUNDLES:.bproj=) none ; do \ if [ $$i = none ] ; then continue; fi; \ if [ -f $(DSTROOT)$(INSTALLDIR)/$(NAME).app/$$i*/$$i ] ; then \ somebundles=yes; \ fi ; \ done; \ (if [ $$somebundles = yes ] ; then \ cmd="$(STRIP) $(DYLD_APP_STRIP_OPTS) $(DSTROOT)$(INSTALLDIR)/$(NAME).app/$(NAME)"; \ else \ cmd="$(STRIP) $(APP_STRIP_OPTS) $(DSTROOT)$(INSTALLDIR)/$(NAME).app/$(NAME)"; \ fi ; \ echo $$cmd ; $$cmd) @($(MAKE) strip "DSTROOT = $(DSTROOT)" \ "PARENT_DIR = $(INSTALLDIR)/$(NAME).app" ; \ $(RM) -f $(DSTROOT)$(INSTALLDIR)/$(NAME).app/$(CHANGES_FILE)) -$(CHOWN) -Rf $(INSTALL_AS_USER).$(INSTALL_AS_GROUP) \ $(DSTROOT)$(INSTALLDIR)/$(NAME).app -$(CHMOD) -Rf go-w $(DSTROOT)$(INSTALLDIR)/$(NAME).app @(if [ "$(INSTALL_PERMISSIONS)" != "" ] ; then \ $(ECHO) $(CHMOD) -f $(INSTALL_PERMISSIONS) \ $(DSTROOT)$(INSTALLDIR)/$(NAME).app/$(NAME); \ $(CHMOD) -f $(INSTALL_PERMISSIONS) \ $(DSTROOT)$(INSTALLDIR)/$(NAME).app/$(NAME); \ fi) @($(process_target_archs)_obj ; \ if [ "$(ENGLISH)" = "YES" -o "$(JAPANESE)" != "YES" ] ; then \ language_cflags="" ; \ else \ language_cflags="-DKANJI" ; \ fi ; \ $(MAKE) after_install "DSTROOT=$(DSTROOT)" \ "OBJROOT=$(OBJROOT)" \ "SYMROOT = $(SYMROOT)/sym" \ "SYM_DIR = $(SYMROOT)/sym" \ "DEVROOT = $(DEVROOT)" \ "INSTALLDIR = $(INSTALLDIR)" \ "PRODUCT_ROOT = $(PRODUCT_ROOT)" \ "PRODUCT = $(PRODUCT_ROOT)/$(NAME)" \ "OFILE_DIR = $(OBJROOT)/$$obj_dir" \ "PROJ_CFLAGS = $(NORMAL_CFLAGS) $$language_cflags" \ "APP_MAKEFILE_DIR = $(APP_MAKEFILE_DIR)" \ "RC_CFLAGS = $$arch_cflags" \ "RC_ARCHS = $$archs" ) #.DEFAULT help: @if (test "$<"); then \ $(ECHO) 'ERROR: Unrecognized Makefile target "$<"'; \ fi @$(ECHO) 'The following targets are available:' @$(ECHO) @$(ECHO) ' all Makes the app target (below). This is the default target.' @$(ECHO) @$(ECHO) ' app Compiles and links an optimized (and debuggable) version of the' @$(ECHO) ' project, ready to install, into <ProjectName>.app.' @$(ECHO) @$(ECHO) ' debug Compiles (with all warnings and -DDEBUG on) and links a ' @$(ECHO) ' fully-debuggable version of the project into a <ProjectName>.debug' @$(ECHO) ' "app wrapper".' @$(ECHO) @$(ECHO) ' profile Compiles (with all warnings and -DPROFILE on) and links a' @$(ECHO) ' version of the project into <ProjectName>.profile.' @$(ECHO) ' "app wrapper" that will, when run, generate a gprof report.' @$(ECHO) @$(ECHO) ' depend Generates an optional Makefile.dependencies file for every level' @$(ECHO) ' of the project to reflect the complete dependency graph' @$(ECHO) ' (including headers).' @$(ECHO) @$(ECHO) ' install Builds (if needed) and copies <ProjectName>.app into the' @$(ECHO) ' installation directory, setting permissions and owners as' @$(ECHO) ' appropriate.' @$(ECHO) @$(ECHO) ' installsrc Installs the source files for the project into the directory' @$(ECHO) ' specified in the SRCROOT variable in a command-line argument.' @$(ECHO) ' Note: the target directory will be removed and recreated.' @$(ECHO) @$(ECHO) ' installhdrs Installs the source files for the project.' @$(ECHO) @$(ECHO) ' clean Removes all files in the project derived from previous builds.' @$(ECHO) @$(ECHO) ' help Lists these targets with their descriptions.' @$(ECHO) @$(ECHO) 'For more details, see the comments in /NextDeveloper/Makefiles/app/*.make.'